Troubleshooting incidents in complex distributed applications used in enterprises is difficult and time consuming. Information available to system administrators includes events logged by various components of a distributed application. Using these events, an administrator needs to manually backtrack a chain of events to nail down the root cause of an incident. This requires that the administrator have knowledge of relationships between various components of the application and also have knowledge of relationships between the events logged by different components of the application. The administrator must know under what all conditions a given event in a given component occurs. Today's systems fail to provide automated event correlation.